Các nguyên lý thiết kế của X Hệ_thống_X_Window

Vào năm 1984 Bob ScheiflerJim Gettys đặt ra các nguyên lý ban sơ của X như sau:

  • Đừng thêm một chức năng mới nào trừ khi người thực hiện không thể hoàn thành một ứng dụng thật sự nếu thiếu chức năng đó.
  • Việc quyết định hệ thống không phải là gì quan trọng không kém việc quyết định hệ thống là gì. Không phục vụ nhu cầu của cả thế giới, thay vào đó, tạo cho hệ thống có khả năng mở rộng được, sao cho các tính năng bổ sung về sau có thể được đáp ứng theo kiểu tương thích xuôi (tương thích với các phiên bản sau).
  • Điều duy nhất tồi tệ hơn việc tổng quát hóa từ một ví dụ là tổng quát hóa không từ một ví dụ nào cả.
  • Nếu không thể hiểu một vấn đề một cách trọn vẹn, thì có lẽ tốt nhất là đừng nên đưa ra một giải pháp nào hết."
  • Nếu ta có một giải pháp có thể đạt được 90% hiệu ứng mong muốn cho 10% công việc, thì ta nên chọn giải pháp đơn giản hơn." (Xin xem thêm Tồi hơn nhưng tốt hơn)
  • Cô lập các phức tạp một cách hết mức có thể."
  • Cung cấp cơ chế chứ không cung cấp qui chế. Cụ thể, đặt các qui chế về giao diện người dùng vào tay của trình khách."

Trong thời gian thiết kế X, nguyên lý đầu tiên đã được điều chỉnh thành: Không bổ sung tính năng mới, trừ phi bạn biết một ứng dụng cụ thể nào đó sẽ đòi hỏi tính năng đó.

Từ đó trở đi, X hầu như giữ vững các nguyên lý của mình. Bản cài đặt tham khảo được phát triển với một tầm nhìn hướng tới sự mở rộng và cải thiện cài đặt, trong khi vẫn gần như hoàn toàn tương thích với giao thức nguyên thủy từ năm 1987.

Tài liệu tham khảo

WikiPedia: Hệ_thống_X_Window http://www.cat.org.au/maffew/cat/xfree-dawes.html http://www.apple.com/macosx/features/x11/ http://ptlo.blogspot.com/2005/12/gnome-vs-kde-hist... http://cbbrowne.com/info/x11r6.4.html http://cbbrowne.com/info/xbloat.html http://www.computerworld.com/softwaretopics/softwa... http://cygwin.com/ml/cygwin-xfree/2003-10/msg00328... http://www.dwheeler.com/essays/gpl-compatible.html... http://h30097.www3.hp.com/docs/dev_doc/DOCUMENTATI... http://keithp.com/~keithp/talks/Xarchitecture/Talk...